//Program by:
//Ben Schmidt - bjs778 - 11054018
//Mike Nimeck - mfn028 - 11053045
//Jeff Huang - jlh105 - 11050226    
    


static float MASS_RANGE = 100000.0f;

static float GRAVITY_SCALE = sqrt((float)GRAVITY_PARTICLES) * 50.0;

static float GRAVITY_CENTER[] = {0.0f, 0.0f, 0.0f};

static GLuint GRAVITY_MASS = 10.00f;

extern bool gravity_center_toggle;

static GLuint GRAVITATIONAL_CONSTANT = 10.0f;
static GLuint GRAVITATIONAL_CONSTANT_STEP = 10.0f;

//initialize the gravity particle system
void initGravity();

//updates the goal position
void update_gravity_goal(float goal_position[], float time);

//updates the goal position based on idle mouse
void update_idle_gravity(float goal_position[], float time);

void init_particles_colour(float* colour, unsigned int num_positions);

//generate initial positions and velocities
void init_mass();

void init_positions();

void init_velocity();

void init_particles_gravity(float* positions, 
		    unsigned int num_positions, 
		    float scale, 
		    const float *bias);

void gravityMouseAction(int button, int state, int x, int y); 
	